axios.defaults.baseURL='http://localhost:8080'
Vue.prototype.$http = axios
// 解析URL地址获取参数对象的公共函数工具
function parseUrlParams2Obj(url){// http://bugtracker.itsource.cn/callback.html?code=061IduGa1839qC02jlIa1NmHxX1IduGX&state=1
  //获取请求参数
  let paramStr = url.substring(url.indexOf("?")+1);//code=021FdXFa14mYlA016OGa1L3R4X0FdXFO&state=1
  let paramStrs = paramStr.split("&");//[code=021FdXFa14mYlA016OGa1L3R4X0FdXFO,state=1]
  let paramObj = {};
  for(let i=0;i<paramStrs.length;i++){
    let paramName = paramStrs[i].split("=")[0];//code
    let paramValue = paramStrs[i].split("=")[1];//021FdXFa14mYlA016OGa1L3R4X0FdXFO
    paramObj[paramName] = paramValue;// 动态给对象设置属性和值
  }
  return paramObj;


}
  let url = location.href
//判断如果不包含登录或者注册说明要访问的页面是需要拦截的
if (url.indexOf("login.html") ===-1
&& url.indexOf("register.html") ===-1
&& url.indexOf("callback.html") ===-1
&& url.indexOf("binder.html") ===-1){
  //获取缓存中的用户信息 判断是狗登录
  let logininfo = localStorage.getItem("logininfo");
  //如果为null说明没有登陆
  if (!logininfo){
    //清楚登录信息跳转登录页面
    localStorage.removeItem("logininfo")
    localStorage.removeItem("token")
    location.href = "login.html";


  }
    //
}



//2.配置axios前置拦截器，作用是让所有axios请求携带token，后台需要token校验是否登录
axios.interceptors.request.use(config=>{
  console.log("222222222");
  // 2.1.从缓存中获取到token
  let token =  localStorage.getItem("token");
  // 2.2.如果token不为null，那么设置到请求头中，此处哪怕为null，我们也不进行处理，因为后台会进行拦截
  if(token){
    config.headers['token']=token;
  }
  // 2.3.放行
  return config;
},error => {
  Promise.reject(error);
})
//3.配置axios后置拦截器，作用是为了得到后端的拦截器响应结果
//  前端需要知道用户是否登录，如果响应是success=false&resultObj=noLogin那么说明用户未登录，直接跳转到登录页面
axios.interceptors.response.use(result=>{
  console.log("333333333");
  // 3.1.获取到后端的响应结果
  let data = result.data;
  // 3.2.判断如果后端响应是success=false&resultObj=noLogin，那就说明在后端拦截器中被拦截下来了，那么跳转到登录页面
  if(!data.success && data.resultObj==="noLogin"){
    // 跳转登录页面
    router.push({path: '/login'});
  }
  // 3.3.放行
  return result;
},error => {
  Promise.reject(error);
})
/*路由拦截器*/
/*router.beforeEach((to, from, next) => {
  //NProgress.start();
  if (to.path == '/login') {
    sessionStorage.removeItem('user');
  }
  let user = JSON.parse(sessionStorage.getItem('user'));
  if (!user && to.path != '/login') {
    next({ path: '/login' })
  } else {
    next()
  }
})*/

// router.afterEach(transition => {
// NProgress.done();
// });
